package d4_sf;

import java.util.Arrays;

public class Demo02 {
    public static void main(String[] args) {
        //目标: 实现选择排序
        //下面这种写法性能不好,在数组中进行多次交换会降低性能
        //1、定义一个数组
        int[] arr = {5, 1, 3, 2};

        //2、定义一个循环控制选择的几轮
        for (int i = 0; i < arr.length - 1; i++) {
            //开始推理(一定要写占位,人的思维是平面的,很难想到)
            //轮数(i)    每轮的次数        j的占位
            // 0            3           1 2 3
            // 1            2           2 3
            // 2            1           3
            //3、内部循环要控制选择几次
            for (int j = i + 1; j < arr.length; j++) {//j不许等于i+1,----->不能写1,内循环会结束,结束之后,j重置,达不到排序的目的

                //4、判断出最小值
                if (arr[i] > arr[j]){
                    //5、进行如果j出的值比i出的值小,就进行交换
                    //临时变量
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}
